package org.jsola.hr.web;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.jsola.core.Result;
import org.jsola.hr.dto.SyncSocUniversalDTO;
import org.jsola.hr.dto.SyncSocWebSiteDTO;

import java.util.List;


/**
 * @author lyh
 */
@Api(tags = "hr-同步社保数据")
public interface ISyncSocWebSiteControllerAPI {


    /**
     * 社保增员
     *
     * @param syncSocWebSiteDTO 增员参数
     * @return 增员结果
     */
    @ApiOperation(value = "社保增员")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "syncSocWebSiteDTO", dataType = "SyncSocWebSiteDTO", value = "增员参数", paramType = "body")
    })
    <T> Result<List<T>> incrementSocEmp(SyncSocWebSiteDTO syncSocWebSiteDTO);

    /**
     * 社保减员
     *
     * @param syncSocWebSiteDTO 减员参数
     * @return 增员结果
     */
    @ApiOperation(value = "社保减员")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "syncSocWebSiteDTO", dataType = "SyncSocWebSiteDTO", value = "增员参数", paramType = "body")
    })
    <T> Result<List<T>> decreaseSocEmp(SyncSocWebSiteDTO syncSocWebSiteDTO);

    /**
     * 同步社保网站数据
     *
     * @param syncSocWebSiteDTO 同步社保参数
     * @return 同步数据
     */
    @ApiOperation(value = "同步社保网站数据")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "syncSocWebSiteDTO", dataType = "SyncSocWebSiteDTO", value = "同步社保参数", paramType = "body")
    })
    Result<List<SyncSocUniversalDTO>> batchSync(SyncSocWebSiteDTO syncSocWebSiteDTO);

}
